package com.ycy.analyzer;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.core.SimpleAnalyzer;
import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.wltea.analyzer.lucene.IKAnalyzer6x;

public class LuceneAnalyzerDemo {

  // 要处理的文本
  static String text = "lucene分析器使用分词器和过滤器构成一个“管道” how，" +
          "文本在流经这个管道后成为可以进入索引的最小单位，" +
          "因此，一个标准的分析器有两个部分组成，一个是分词器tokenizer,它用于将文本按照规则切分为一个个可以进入索引的最小单位。" +
          "另外一个是TokenFilter，它主要作用是对切出来的词进行进一步的处理（如去掉敏感词、英文大小写转换、单复数处理）等。" +
          "lucene中的Tokenstram方法首先创建一个tokenizer对象处理Reader对象中的流式文本，然后利用TokenFilter对输出流进行过滤处理";

  static String text1 = "Q36 countries is The components of the token stream (the tokenizer and the token filters)" +
          "put accurate values into the token attributes to reflect the situation at the end of the field";

  static String text11 = "Q36 the who am i";

  static String text2 = "i'll send your ahycy2011@163.com";

  static String text3 = "星巴克(龙之梦2店)";

  public static void main(String[] args) {
    test1();
//    test2();
    //WhitespaceAnalyzer
    test3();
//    test4();
  }

  public static void test1() {
    Analyzer co = new StandardAnalyzer(); //基于复杂的语法分词 邮件 i'll 这种词分成一个单元
//    test(text, co);
//    display(text1, co);
     display(text11, co);
//    test(text2, co);
//    test(text3, co);
  }


  public static void test2() {
    Analyzer co1 = new SimpleAnalyzer(); //非字母字符分割
//    test(text, co1);
//    display(text1, co1);
      display(text11, co1);
//    display(text2, co1);
//    display(text3, co1);
  }


  public static void test3() {
    Analyzer co2 = new WhitespaceAnalyzer();
//    test(text, co2);
//    test(text1, co2);
    display(text11,co2);
//    test(text2, co2);
//    test(text3, co2);
  }

  public static void test4() {
    Analyzer co3 = new IKAnalyzer6x();
//    display(text, co3);
//    display(text1, co3);
//    display(text2, co3);
//    display(text3, co3);
  }

  public static void test5(){

  }

  public static void display(String text, Analyzer analyzer) {
    PrintUtil.displayTokenAll(text, analyzer);
  }


}
